from unittest import TestCase
import numpy as np

class NumpyTest(TestCase):

    def test_addition(self):
        result = 1 + 2
        self.assertEqual(result, 3)  # 最常用断言
    # 读取文件
    def test_read_file(self):
        file_name = './000001SZ.csv'
        # fname ：文件名
        # delimiter：分割符
        # unpack：是否解压
        # usecols：指定读取的列
        end_price, volume = np.loadtxt(fname=file_name, delimiter=',', unpack=True, usecols=(2, 6))
        print('\n')
        print(end_price)
        print(volume)
    def test_max_and_min(self):
        file_name = './000001SZ.csv'
        max_price, min_price = np.loadtxt(fname=file_name, delimiter=',', unpack=True, usecols=(4, 5))
        print('\n')
        print('max_price:', max_price.max())
        print('min_price:', min_price.min())

    # 计算极差
    # 股价近期最高价的最大与最小值的差值 或是 股价近期最低价的最大值与最小值的差值
    # np.ptp函数 ： 计算数组极差（Range）的函数，全称是"peak to peak"（峰峰值）。
    #   它的作用是返回数组沿指定轴的最大值与最小值之差。
    def test_ptp(self):
        file_name = './000001SZ.csv'
        max_price, min_price = np.loadtxt(fname=file_name, delimiter=',', unpack=True, usecols=(4, 5))
        print('\n')
        print('ptp:', np.ptp(max_price))
